package com.hqd527.qdshop.serviceproduct.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.hqd527.qdshop.product.*;

import java.util.List;

/**
 * @author 太优秀
 * @date 2022/2/4 22:08
 * @description
 */

public interface ManageService {

    /**
     * 【查询 一级分类列表】
     * @return
     */
    List<BaseCategory1> getBaseCategory1List();

    /**
     * 【根据 一级分类ID 查询 二级分类列表】
     * @param category1Id
     * @return
     */
    List<BaseCategory2> getBaseCategory2List(Long category1Id);

    /**
     * 【根据 二级分类ID 查询 三级分类列表】
     * @param category2Id
     * @return
     */
    List<BaseCategory3> getBaseCategory3List(Long category2Id);

    /**
     * 【根据 分类ID 查询 属性名列表 （可以根据一级分类ID / 二级分类ID / 三级分类ID 查询）】
     * @param category1Id
     * @param category2Id
     * @param category3Id
     * @return
     */
    List<BaseAttrInfo> getBaseAttrInfoList(Long category1Id, Long category2Id, Long category3Id);


    /**
     * 【保存平台属性】
     * @param baseAttrInfo
     */
    void saveAttrInfo(BaseAttrInfo baseAttrInfo);

    /**
     * 根据属性名id获取属性值列表
     * @param attrId
     * @return
     */
    List<BaseAttrValue> getBaseAttrValueList(Long attrId);

    /**
     * 根据属性名id获取属性对象
     * @param attrId
     * @return
     */
    BaseAttrInfo getAttrInfo(Long attrId);

    /**
     * 根据输入的SPU信息分页查询与之匹配的SPU列表
     * @param current
     * @param limit
     * @param spuInfo
     * @return
     */
    IPage<SpuInfo> getSpuInfoByPage(Long current, Long limit, SpuInfo spuInfo);


}
